#ifndef ESTRATEGIA_BLOQUES_H_
#define ESTRATEGIA_BLOQUES_H_

#include <stdlib.h>
#include "../Dato.h"
#include "Etg_Almacenamiento.h"
#include "../componentes.inc.h"
#include "../../enums.inc.h"

#include "../Buffer.h"

using namespace std;

class EstrategiaBloques: public Etg_Almacenamiento{
		
	private:
	
		//ver esto! 
		void cargaInicialB(std::vector<Dato*> listaDatos);
		void cargaInicialD(std::vector<Dato*> listaDatos);
		void actulizarEspLibres(Compuesto *compuesto);
	
	public:
	
		EstrategiaBloques(Almacenamiento **persistencia,TipoAlmacenamiento tipo);
		
		void crear(TipoMemoria tipo, std::vector<Dato*> listaDatos, void *ptr);
		
		void insertar(Dato *nvoDato,int* nroComponente);
		
		void leer(Dato *dato,int nroBloque);
		
		void modificar(Dato *dAux,int bOrig, int *bDest);
		
		void eliminar(Dato *daux,int nroComponente);
		
		void leer(Dato *dato){}
		
		void modificar(Dato *dAux){}
		
		void buscar(Dato **dato, int nroBloque, unsigned long int clave,TipoSerializacion tipoSerializacion,PrimaryKey *PK);
		
		~EstrategiaBloques();	
};

#endif /*ESTRATEGIABLOQUES_H_*/
